package ar.uba.fi.algo3.algoTank;

import java.io.Serializable;

import ar.uba.fi.algo3.algoTank.Objetos.Bloque;
import ar.uba.fi.algo3.algoTank.Objetos.BloqueConcreto;
import ar.uba.fi.algo3.algoTank.Objetos.BloqueMetal;
import ar.uba.fi.algo3.algoTank.Objetos.Posicion;
import ar.uba.fi.algo3.algoTank.Objetos.Territorio;

public class AdministradorNivel implements Serializable {
	
	
	private static final long serialVersionUID = 1L;
	
	private  int nivelActual;
	private Juego juego;
	private Nivel nivel;
	
	public AdministradorNivel(Juego unJuego){
		
		this.juego =  unJuego;
		nivelActual = 1;
		nivel = new NivelUno(unJuego);
		
	}
	
	public void subirNivel(){
		nivel = nivel.getSiguienteNivel();
		nivelActual += 1;
	}
	
	public int getNivelActual(){
		return nivelActual;
	}
	
	public void setNivel(){
		
		nivel.setNivel();
	}
	
private void crearBloquesBase( float posXBase, float posYBase){
		
	Territorio territorio = juego.getTerritorio();

	
		for ( int i = 0; i<60; i +=20){
			BloqueMetal ai= new BloqueMetal(new Posicion(( posXBase+40),(posYBase+30)-i) ,territorio);
			territorio.addObjeto(ai);
			}
			
		for ( int i = 0; i<40; i +=20){
				BloqueMetal ai= new BloqueMetal(new Posicion(( posXBase-30),(posYBase+30)-i) ,territorio);
				territorio.addObjeto(ai);
				}
			
		for ( int i = 0; i<=60; i +=20){
				BloqueMetal ai= new BloqueMetal(new Posicion(( posXBase-30)+i,(posYBase+10)-20) ,territorio);
				territorio.addObjeto(ai);
				}
			
		
	}
	
	
	private void crearBloquesrectos(){
	
		for ( int i = 0; i<=500; i +=20)
			for ( int j = 0; j<=300; j +=40){
			Bloque ai= new BloqueConcreto(new Posicion(40+i,40+j) ,juego.getTerritorio());
			juego.getTerritorio().addObjeto(ai);
			}
	}
	
	private void crearBloquesAleatorios(){
		
		Territorio territorio = juego.getTerritorio();
		
		for ( int i = 0; i<=140; i +=20){
			Bloque ai= new BloqueConcreto(new Posicion(40,40+i) ,territorio);
			territorio.addObjeto(ai);
			}

		for ( int i = 0; i<=140; i +=20){
			Bloque ai= new BloqueConcreto(new Posicion(60,40+i) ,territorio);
			territorio.addObjeto(ai);
			}
		for ( int i = 0; i<=60; i +=20){
			Bloque ai= new BloqueConcreto(new Posicion(i,220) ,territorio);
			territorio.addObjeto(ai);
			}
		
		//medio hasta derecha
		for ( int i = 0; i<=390; i +=90)
			for ( int j = 0; j<=160; j +=60){
			Bloque ai= new BloqueConcreto(new Posicion(120+i,40+j) ,territorio);
			territorio.addObjeto(ai);
			}
		
		for ( int i = 0; i<=160; i +=20)
			for ( int j = 0; j<=20; j +=20){
			Bloque ai= new BloqueConcreto(new Posicion(540+j,40+i) ,territorio);
			territorio.addObjeto(ai);
			}
		
		//medio metal
		for ( int i = 0; i<=300; i +=20){
			Bloque ai= new BloqueMetal(new Posicion(160+i,220) ,territorio);
			territorio.addObjeto(ai);
			}
		
		//Abajo Izquierda
		for ( int i = 0; i<=180; i +=20)
			for ( int j = 0; j<=100; j +=80){
			Bloque ai= new BloqueConcreto(new Posicion(20+i,260+j) ,territorio);
			territorio.addObjeto(ai);
			}
		
		for ( int i = 0; i<=200; i +=40){
			Bloque ai= new BloqueConcreto(new Posicion(20+i,380) ,juego.getTerritorio());
			juego.getTerritorio().addObjeto(ai);
			}
		
		//Abajo Derecha
		for ( int i = 0; i<=160; i +=20)
			for ( int j = 0; j<=100; j +=80){
			Bloque ai= new BloqueConcreto(new Posicion(400+i,260+j) ,territorio);
			juego.getTerritorio().addObjeto(ai);
			}
		
		
		for ( int i = 0; i<=80; i +=40)
			for ( int j = 0; j<=65; j +=20){
			Bloque ai= new BloqueConcreto(new Posicion(260+i,260+j) ,juego.getTerritorio());
			juego.getTerritorio().addObjeto(ai);
			}	
		
		for ( int i = 0; i<=200; i +=40){
			Bloque ai= new BloqueConcreto(new Posicion(400+i,380) ,juego.getTerritorio());
			juego.getTerritorio().addObjeto(ai);
			}
	}
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
}
